A call processing feature is a capability or service provided to the telephone customer by a public switched telephone network. Examples of some features are: 3-way calling, call waiting, call forwarding, toll-free 800 numbers, and emergency 911 access. In the current public switched telephone network (PSTN), the process of modifying an existing feature or introducing a new feature can be time consuming and costly. The PSTN includes a plurality of switches. As is known in the art, the switches control the routing and flow of telephone calls. The operation of modern switches is generally carried out by a switch software control package. The portion of the switch software control package that actually route and process calls is called the call processing software.
Likewise, features are now implemented as software at the switches of the PSTN and, in fact, are integrated into the switch control software package. The introduction of a new feature involves the production of detailed functional requirements of the feature along with specifications regarding how the feature should interact with other features already in existence. These requirements are made available to the manufacturers of telephone switches. The manufacturers then incorporate the new features as software in the switch control software package.
A feature interaction is the effect that one feature has upon another feature. For example, one common feature, emergency 911, has substantial effects on other features. If a telephone customer is engaged in an emergency 911 call, other features normally available to the customer are disabled. Even if the user subscribes to call waiting, the call waiting feature is disabled until the emergency 911 call is complete. Thus, the use of the emergency 911 feature inhibits the use of other features. Inhibition is only one kind of feature interaction; there are several others. Another example of a feature interaction involves the "distinctive alerting" feature which provides a distinctive ringing pattern based upon the identity of the calling party. If the customer's line is idle, the distinctive alerting feature is invoked automatically. However, if the customer's line is busy, the distinctive alerting feature is invoked only if another feature that can handle multiple calls has been invoked. Thus, the status or availability of other features has an effect on the distinctive alerting feature.
In the prior art, feature interactions are managed within the software that implements the feature. In the emergency 911 example above, feature management includes the actions necessary to inhibit the call waiting feature until the emergency 911 call is complete. The features, as well as feature-specific software for managing the interactions between features, are part of a single integrated switch control software package for the switch. Modification of that software can be done only by the original vendor.
The addition of a new feature that interacts with one or more previously existing features generally requires that the existing features be modified. Changes in one of the existing features may in turn fierce changes in other existing features. This cascade of modifications results in the need for extensive testing after the addition of the new feature. The new feature must be tested, all of the modified features must be tested, and the package as a whole must be tested. All of this testing is done in the context of the switch control software package that typically contains millions of lines of code. The total time involved in testing may be several years, and cost millions of dollars.
The principal advantage with providing an integrated software package that implements and controls both the features themselves and the interactions between the features is the speed at which the software package can run. However, with the advent of extremely fast processors and parallel processing techniques, the software speed advantage no longer absolutely outweighs the difficulty of modifying or introducing new features. The present invention separates the features from the interactions between the features by providing a separate apparatus that handles the feature interactions. This provides significant advantages, including easier modification of existing features and the introduction of new features. Thus, new features can be added to a telephone network more quickly and at lower costs than with current approaches.